// src/services/examples/indicator-app.ts
import { IndicatorCalculator, Config } from './examples/indicator-calculator';
import { TradingAdvisorService } from './services/trading-advisor.service';
import * as dotenv from 'dotenv';
import { configService } from './utils/config.service';

// 加载环境变量
dotenv.config();

/**
 * 应用启动入口
 */
async function main() {
  try {
    console.log('📈 启动多指标计算系统...');

    // 从ConfigService获取配置
    const config = configService.getFullConfig();

    // 创建并启动指标计算器
    const calculator = new IndicatorCalculator(config);
    await calculator.start();

    // 检查是否需要获取交易建议
    if (config.global.getTradingAdvice) {
      console.log('\n📊 正在获取交易建议...');
      console.log('🔄 使用流式输出，分析结果将实时显示（完成后会一次性发送到Telegram）:');
      console.log('----------------------------------------------------------------------');

      // 使用TradingAdvisorService获取交易建议，启用流式输出
      const tradingAdvisor = new TradingAdvisorService({
        logDir: config.global.logDir,
        instruments: config.instruments.map(inst => inst.instId)
      });

      await tradingAdvisor.generateAndSendAdvice(true); // true表示使用流式输出

      console.log('----------------------------------------------------------------------');
    }

  } catch (error: any) {
    console.error('❌ 系统启动失败:', error.message);
    process.exit(1);
  }
}

// 当直接运行此文件时执行main函数
if (require.main === module) {
  main();
} 